package cn.cpf.tool.doc.pdf;

import lombok.extern.slf4j.Slf4j;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.File;
import java.io.IOException;

/**
 * <b>Description : </b>
 *
 * @author CPF
 * Date: 2020/5/8 17:49
 */
@Slf4j
public class PdfBoxHandle {

    public static String txtExtract(File pdfFile) {
        String content = "";
        try (PDDocument document = PDDocument.load(pdfFile)) {
            // 获取页码
            int pages = document.getNumberOfPages();
            // 读文本内容
            PDFTextStripper stripper = new PDFTextStripper();
            // 设置按顺序输出
            stripper.setSortByPosition(true);
            stripper.setStartPage(1);
            stripper.setEndPage(pages);
            content = stripper.getText(document);
        } catch (IOException e) {
            log.error("pdf文本提取失败 file: {}", pdfFile.getPath());
            log.error("pdf文本提取失败", e);
        }
        return content;
    }

    public static void main(String[] args) {
        String path = "D:\\Users\\CPF\\Desktop\\金融市场业务系统完善项目\\开发指引\\产品业务指引\\产品指引\\中国外汇交易中心产品指引V3.2.pdf";
        String s = txtExtract(new File(path));
        System.out.println(s);
    }

}
